package com.thank.concurrency.samples.singleton;

import com.thank.concurrency.annoations.ThreadSafe;

/**
 * 饿汉式, 第二种写法: 初始化操作放到静态域中(注意顺序问题)
 */
@ThreadSafe
public class SingletonExample6 {

    // 私有的构造方法
    private SingletonExample6() {
    }

    // 单例对象
    private static SingletonExample6 instance = null;

    // 注意写static代码时一定要注意顺序
    // 不要放到private static SingletonExample6 instance = null;的前面
    // 否则static{..}完成后又会调用instance=null
    static {
        instance = new SingletonExample6();
    }

    // 静态的工厂方法
    public static SingletonExample6 getInstance() {
        return instance;
    }

}
